const user = require('./user.model');

module.exports = {
  async userAdd({ user_name, password }) {
    const res = await user.create({ user_name, password });

    return res.dataValues;
  },

  /**
   *
   * @param {*} userInfo
   * @param {number} [userInfo.id] - 用户ID
   * @param {string} [userInfo.user_name] - 用户名
   * @param {string} [userInfo.password] - 密码
   * @param {boolean} [userInfo.is_admin] - 是否为管理员
   * @returns
   */
  async userUpdate(userInfo) {
    const { id, ...newUser } = userInfo;

    try {
      const res = await user.update(newUser, {
        where: { id },
      });

      return {
        status: res[0] > 0,
        id,
      };
    } catch (error) {
      console.log(`\x1B[45m ${error} \x1B[0m`);
      // SequelizeDatabaseError
    }
  },

  /**
   *
   * @param {*} where
   * @param {number} [where.id] - 用户ID
   * @param {string} [where.user_name] - 用户名
   * @param {string} [where.password] - 密码
   * @param {boolean} [where.is_admin] - 是否为管理员
   * @returns
   */
  async userGet(where = {}) {
    const res = await user.findOne({
      attributes: ['id', 'user_name', 'password', 'is_admin'],
      where,
    });

    return res ? res.dataValues : null;
  },
};
